#ifndef RESOURCEINTERFACE_H
#define RESOURCEINTERFACE_H

#include <QString>
#include <QStringList>

class QResourceInterface
{
public:
    virtual ~QResourceInterface(){}

    virtual QStringList getTopLevelNames()=0;
    virtual QStringList getResourceNames(const QString &topLevel)=0;
    virtual QStringList getSelectNames()=0;

    virtual void        addSelect(const QString &name)=0;
    virtual void        removeSelect(const QString &name)=0;

    virtual void        addTopLevel(const QString &name)=0;
    virtual void        removeTopLevel(const QString &name)=0;

    virtual void        addResource(const QString &topLevel,const QString &name,const QByteArray &data)=0;
    virtual void        removeResource(const QString &topLevel,const QString &name)=0;

    virtual bool        topLevelCandel(const QString &topLevel)=0;
    virtual bool        resourceCandel(const QString &topLevel,const QString &name)=0;

    virtual void        save(QString toplevel="")=0;

    virtual QByteArray  getResourceData(const QString &topLevel,const QString &name)=0;
};

#endif
